home *** CD-ROM | disk | FTP | other *** search
- WinTar-Remote tut! 24/08/97
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Program: WinTar-Remote
- Version: 2.2.1
- URL:http://www.spiralcomm.com
- Description: i know shit about this program i picked up cause of the
- size
- Operating System: Windows
- Cracker: nIabI [Me'97]
- Level: Intermediate
- Tools: SoftICE, W32Dasm, a Hex Editor.
- Protection Type: 30 day trial
- Encrypted/DLL: No
- Method: Dissasemble
-
- 0.-index:
-
- 0.-index
- 1.-Intro
- 2.-What We need (tools)
- 3.-Let's Crack the splash screen
- 4.- Lic. screen removal
- 5.- The 1s part of the time trial
- 6.- The 2nd part of the time trial
- 7.-Last Notes
- 8.-Notes
- 9.-Thak you's
-
-
-
- 1.- Intro:
-
- Hello, ok here again on another tut for C4N, this time i am goin to talk about Time Trials
- Even tough they are easy a lot of ppl still don't get it so this is why this tut is gone
- (hopefully) teach you, also i will teach some of nag remove and bmp (splash) screens :-)
-
- ok, the program had to be a time trial (of course) but we need it a not to big program but one
- that had some potencial in it or i could have used Rhino 3d wich is not small and does not
- have any teaching potential (u changed one byte and it's cracked) so ok with the help of a
- friend Griml0ck we decited to get this program is called WinTAR-Remote by SpiralCom
- Communications Inc. what this program does is not important to us we wil crack it and
- delted it for educational purpose ONLY :-).
-
- In this tut i will asume u know how to use all of the tools i will use here else please get other
- tuts that do explain how to use them (TKC's, Edison's, josephCo's and others)
-
-
- 2.- What We need (tools):
-
- W32dasm (used mostly)
- SoftIce
- Any Hexeditor
- a patch maker (if we want to release our crack), i recomen Gpatch by jes and patchit by Qapla
- gpatch i like better cause of ease of use and does some good patches on the other hand patchit
- gives u the source of the patch in C :-), other wiseuse Pascal or C and do ur own patch (not
- explained in this tut sorry).
-
-
- 3.- Let's Crack the splash screen:
-
- ok once d/l the program u run it add se a nasty splash that says Thanks for trying WinTar blah
- blah,blah after some secs it shows u a license aggrement (ewww), now we don't like those 2 things
- so let's start by taking them away we enter softice and set a bpx on LoadBitmapA once we do this
- we run the program again and boom u in Softice cause of one of the bpx u seted b4 now we can see
- this (from the w32dasm dissaemble) :
-
- * Reference To: USER32.SetTimer, Ord:01FEh ; set time the splash screen is goin to show
- |
- :0040F5F4 FF15F0C64200 Call dword ptr [0042C6F0]
- :0040F5FA E92D010000 jmp 0040F72C
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:0040F6FF(C)
- |
- :0040F5FF 6A67 push 00000067 ; hmm nice push here (does nothing good)
- :0040F601 A124A54200 mov eax, dword ptr [0042A524]
- :0040F606 50 push eax
-
- * Reference To: USER32.LoadBitmapA, Ord:0165h ; this is where u land
- |
- :0040F607 FF15D0C64200 Call dword ptr [0042C6D0]
- :0040F60D 8945DC mov dword ptr [ebp-24], eax
- :0040F610 8D859CFEFFFF lea eax, dword ptr [ebp+FFFFFE9C]
- :0040F616 50 push eax
- :0040F617 8B4508 mov eax, dword ptr [ebp+08]
- :0040F61A 50 push eax
-
- * Reference To: USER32.BeginPaint, Ord:0009h ; begin the painting of the splash
- |
- :0040F61B FF1574C64200 Call dword ptr [0042C674]
- :0040F621 8945F8 mov dword ptr [ebp-08], eax
- :0040F624 8B45F8 mov eax, dword ptr [ebp-08]
- :0040F627 50 push eax
-
- * Reference To: GDI32.CreateCompatibleDC, Ord:001Fh
- |
- :0040F628 FF1590C44200 Call dword ptr [0042C490]
- :0040F62E 8945FC mov dword ptr [ebp-04], eax
- :0040F631 8B45DC mov eax, dword ptr [ebp-24]
- :0040F634 50 push eax
- :0040F635 8B45FC mov eax, dword ptr [ebp-04]
- :0040F638 50 push eax
-
- * Reference To: GDI32.SelectObject, Ord:013Ch
- |
- :0040F639 FF15B0C44200 Call dword ptr [0042C4B0]
- :0040F63F 8D45E0 lea eax, dword ptr [ebp-20]
- :0040F642 50 push eax
- :0040F643 6A18 push 00000018
- :0040F645 8B45DC mov eax, dword ptr [ebp-24]
- :0040F648 50 push eax
-
- * Reference To: GDI32.GetObjectA, Ord:00DEh
- |
- :0040F649 FF1598C44200 Call dword ptr [0042C498]
- :0040F64F 682000CC00 push 00CC0020
- :0040F654 6A00 push 00000000
- :0040F656 6A00 push 00000000
- :0040F658 8B45FC mov eax, dword ptr [ebp-04]
- :0040F65B 50 push eax
- :0040F65C 8B45E8 mov eax, dword ptr [ebp-18]
- :0040F65F 50 push eax
- :0040F660 8B45E4 mov eax, dword ptr [ebp-1C]
- :0040F663 50 push eax
- :0040F664 6A00 push 00000000
- :0040F666 6A00 push 00000000
- :0040F668 8B45F8 mov eax, dword ptr [ebp-08]
- :0040F66B 50 push eax
-
- * Reference To: GDI32.BitBlt, Ord:000Ah
- |
- :0040F66C FF1588C44200 Call dword ptr [0042C488]
- :0040F672 8B45FC mov eax, dword ptr [ebp-04]
- :0040F675 50 push eax
-
- * Reference To: GDI32.DeleteDC, Ord:0043h
- |
- :0040F676 FF1584C44200 Call dword ptr [0042C484]
- :0040F67C 8B45DC mov eax, dword ptr [ebp-24]
- :0040F67F 50 push eax
-
- * Reference To: GDI32.DeleteObject, Ord:0046h
- |
- :0040F680 FF158CC44200 Call dword ptr [0042C48C]
- :0040F686 8D859CFEFFFF lea eax, dword ptr [ebp+FFFFFE9C]
- :0040F68C 50 push eax
- :0040F68D 8B4508 mov eax, dword ptr [ebp+08]
- :0040F690 50 push eax
-
- * Reference To: USER32.EndPaint, Ord:00AFh
- |
- :0040F691 FF1570C64200 Call dword ptr [0042C670]
- :0040F697 B801000000 mov eax, 00000001
- :0040F69C E992000000 jmp 0040F733
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:0040F721(C)
- |
- :0040F6A1 8B4510 mov eax, dword ptr [ebp+10]
- :0040F6A4 50 push eax
- :0040F6A5 8B4508 mov eax, dword ptr [ebp+08]
- :0040F6A8 50 push eax
-
- * Reference To: USER32.KillTimer, Ord:0162h ; kiil the timer set b4 to show the splash
- |
- :0040F6A9 FF15F4C64200 Call dword ptr [0042C6F4]
-
-
- ok u can see here one thing the line that contains push 00000067 in 40f5ff does nothing
- so to crack the splash screen we chage this
-
- :0040F5FF 6A67 push 00000067 ; hmm nice push here (does nothing good)
- to this
- :0040F5FF E9A5000000 JMP 0040F6A9 ; Nice jump, kills the timer and the splash
-
- so here the splash screen is disabled and we can continue cracking.
-
- 4.- Lic. screen removal:
-
- ok this par needs some zen cracking :-) this is part of the disssemble in w32dasm :
-
-
- :004094DD 813D3C5A420000010000 cmp dword ptr [00425A3C], 00000100
- :004094E7 0F8533000000 jne 00409520
- :004094ED 8B4508 mov eax, dword ptr [ebp+08]
- :004094F0 50 push eax
- :004094F1 E80AEFFFFF call 00408400 ; call the lic screen(how did i got here ?
- ; like i said zen cracking :-)
- :004094F6 83C404 add esp, 00000004
- :004094F9 85C0 test eax, eax
- :004094FB 0F851F000000 jne 00409520
- :00409501 C705105C420001000000 mov dword ptr [00425C10], 00000001
- :0040950B 6A00 push 00000000
- :0040950D 6A00 push 00000000
- :0040950F 6A10 push 00000010
- :00409511 8B4508 mov eax, dword ptr [ebp+08]
- :00409514 50 push eax
-
- this is what the call to the lic screen is :
-
- * Referenced by a CALL at Address:
- |:004094F1
- |
- :00408400 55 push ebp ; this code is only checking if the file is not
- ; delted or something like that
- :00408401 8BEC mov ebp, esp
- :00408403 83EC08 sub esp, 00000008
- :00408406 53 push ebx
- :00408407 56 push esi
- :00408408 57 push edi
- :00408409 C745F867844000 mov [ebp-08], 00408467
- :00408410 6A00 push 00000000
- :00408412 8B45F8 mov eax, dword ptr [ebp-08]
- :00408415 50 push eax
- :00408416 8B4508 mov eax, dword ptr [ebp+08]
- :00408419 50 push eax
- :0040841A 6A66 push 00000066
- :0040841C A124A54200 mov eax, dword ptr [0042A524]
- :00408421 50 push eax
-
- * Reference To: USER32.DialogBoxParamA, Ord:008Ah
- |
- :00408422 FF15C8C64200 Call dword ptr [0042C6C8]
- :00408428 8945FC mov dword ptr [ebp-04], eax
- :0040842B 837DFC02 cmp dword ptr [ebp-04], 00000002
- :0040842F 0F8512000000 jne 00408447
-
- * Possible Reference to String Resource ID=03302: "The licence agreement file is missing or
- corrupted. Please "
- ; as u can see here if u delete the
- ; licence.txt u get this msg
-
- ok what we can do here is this since none of the checking of calling is done AFTER the call
- once it finds a ret the program says ok this guy pushed the i agree button, continue, so what we
- can do here is give the program a ret, whe change this :
-
- :00408400 55 push ebp
- to this
- :00408400 C3 ret
- the program calls the screen but a ret(return from call) is there so it returns to the program.
-
-
- 5.- The 1s part of the time trial:
-
- ok now once we dissabled all of the nag's and nasty stuff we need to take the 30 day trial
- we try and find something on the nag box in w32dasm what we find is just a lot of garbage in this
- nag (not gabage but dificult to follow) how about something else ? hmm the .ini ? ok let's try
- we search for it and land here :
-
- * Possible StringData Ref from Data Obj ->"wintar.ini"
- |
- :00409275 A1485A4200 mov eax, dword ptr [00425A48]
- :0040927A 50 push eax
- :0040927B 6A00 push 00000000
-
- * Possible StringData Ref from Data Obj ->"Validate"
- |
- :0040927D 68405C4200 push 00425C40
-
- * Possible StringData Ref from Data Obj ->"UserOpt"
- |
- :00409282 684C5C4200 push 00425C4C
-
- * Reference To: KERNEL32.GetPrivateProfileIntA, Ord:00F9h
- |
- :00409287 FF152CC54200 Call dword ptr [0042C52C]
- :0040928D 8985F4FEFFFF mov dword ptr [ebp+FFFFFEF4], eax
- :00409293 E91A000000 jmp 004092B2
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:0040926F(C)
- |
- :00409298 6A00 push 00000000
-
- * Possible StringData Ref from Data Obj ->"Validate"
- |
- :0040929A 68545C4200 push 00425C54
-
- * Possible StringData Ref from Data Obj ->"UserOpt"
- |
- :0040929F 68605C4200 push 00425C60
- :004092A4 E896E2FFFF call 0040753F ; if you follow in SI here u will
- ; find that this call does
- ; does something strange so we
- ; go to the call
- :004092A9 83C40C add esp, 0000000C
- :004092AC 8985F4FEFFFF mov dword ptr [ebp+FFFFFEF4], eax
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:00409293(U)
- |
- :004092B2 83BDF4FEFFFF00 cmp dword ptr [ebp+FFFFFEF4], 00000000
- :004092B9 0F850D000000 jne 004092CC
- :004092BF E89CE8FFFF call 00407B60 ; take a deep look :-)
- :004092C4 85C0 test eax, eax
- :004092C6 0F849B000000 je 00409367
-
- this is what we get by the call at 4092A4
-
- * Referenced by a CALL at Addresses:
- |:004092A4 , :00410C4F , :00410C7F , :00410C98 , :00410CB1
- |:00410CCA , :00410CE3 , :00410CFC , :00410D15 , :00410D2E
- |:00410D47 , :00410D60 , :00410D80 , :00410D99 , :00410DB2
- |:00410DCB , :00410DE4 , :00410DFD , :00410E16 , :00411304
- |:0041131D , :00416C74 , :00416C8F , :00416CAA , :00416F4F
- |:00416F6A , :00416F85 , :00417415 , :00417622 , :004177C1
- |:004177E2 , :0041788D , :00417961 , :00417982 , :004179A3
- |
- ; WOW this part sure does get called !
- :0040753F 55 push ebp
- :00407540 8BEC mov ebp, esp
- :00407542 81EC14010000 sub esp, 00000114
- :00407548 53 push ebx
- :00407549 56 push esi
- :0040754A 57 push edi
- :0040754B C745F404010000 mov [ebp-0C], 00000104
- :00407552 833D3856420000 cmp dword ptr [00425638], 00000000 ; is the flag Zero ?
- :00407559 0F8507000000 jne 00407566 ; no then bug off
- :0040755F 33C0 xor eax, eax
- :00407561 E9A0000000 jmp 00407606
-
- what we can do here is simple we look at our Registers ans check is EAX is zero b4 it called this
- part........ we check and see that it is zero so this is getting better :) what we do here is
- simple ok remeber the lic. removal part how the call only wanted a ret ? ok so this is equal
- change this:
-
- :0040753F 55 push ebp
- to this
- :0040753F C3 RET
- there now the MARKER (if you set the time ahead or b4 30 days) is removed.
-
-
- 6.- The 2nd part of the time trial:
-
- ok now we need to remove the 30 day check this will ALSO require more zen (this is prolly a zen
- tut and not a time trial :] ) but not many zen if u are a good looker u can see this call after
- the check mark call :
-
- :004092BF E89CE8FFFF call 00407B60 ; this is our check our time call :-)
-
- unlucky us u can't do the RET trick here :-( so we go deep inside the call and find this:
-
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:00407CA1(C)
- |
- :00407CB1 833DB457420000 cmp dword ptr [004257B4], 00000000 ; check the flag to zero
- :00407CB8 0F850A000000 jne 00407CC8 ; no? the bug off
- :00407CBE B801000000 mov eax, 00000001 ; and move EAX to 1
- ; wich 1 = bad time
- :00407CC3 E902000000 jmp 00407CCA ; jump to return
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:00407CB8(C)
- |
- :00407CC8 33C0 xor eax, eax
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Address:
- |:00407CC3(U)
- |
- :00407CCA E900000000 jmp 00407CCF
-
- * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
- |:00407BA4(U), :00407BBA(U), :00407BE6(U), :00407C1A(U), :00407C65(U)
- |:00407CCA(U)
- |
- :00407CCF 5F pop edi
- :00407CD0 5E pop esi
- :00407CD1 5B pop ebx
- :00407CD2 C9 leave
- :00407CD3 C3 ret
-
- ok now here the program is looking for something, what could it be ?..........
- ok if we continue with eax in 1 we get the sorry screen and a help file opens and our program
- terminates, we don't like this so we go back here and check again, ok i got it it checks if eax
- is ZERO if it is then the guy is still on the 30 day limit, so we change this :
-
- :00407CBE B801000000 mov eax, 00000001 ; and move EAX to 1
- to this
- :00407CBE B800000000 mov eax, 00000000 ; and move EAX to 0
-
- now the program even if you are on the 30 day limit it will let you use it for the rest of your
- life :-).
-
- 7.-Last Notes:
- ok now to finally do our crack we enter a hexeditor and search for the opcodes and change them
- (like,i said at the beggining i assume you allready know this).
-
-
- 8.-Notes:
-
- You could search for the text UNREGISTERED and changed to anything u like like CrackedVer.
- ans search for the string Days left and change it to anything as well i will not explain this
- because i think AT least the programmers deserve that since u cracking the software :-).
-
-
- 9.-Thak you's:
-
- Ok thaks go to the follwing persons:
- JosephCo: keep up the good work d00d
- mpbaer: ha Rebirth ROX !!!!!! :)))
- Razzi: ur tuts rule !!!
- ^pain^: cause u cool :)
- tHATDUDE: he isnpired me to become a cracker :-)
- Fant0m : damm ur coding is good
- GThorne: haha this guy rox the world !
- Tgunner: 10x for everything
- lgb: 10q as well for all the help and support :)
- blorght: the only female i seen (err on irc) that can do a lot of stuff ! u rule babe :-)
- Griml0ck: he inspired me and asked me to this tut :-) ok d00d for you here it goes.
- TeRaphY: this guy is kewl as well :)
- Krazy_N: he is not crazy but he is kewl :)
- all the regulars of #cracking4newbies thanks that shows us that we growing ! :-)
- #cracking all of the guys in it aswell retf in especial :-P
- #revolt bring up the warez ! :)
- cat|man: thanks for those sites :)
- if i forgot anyone please let me know i will respond ahh ok 10q :)
- oh and also all of the ppl that shows some cracking teaching or explaining !!
-
- nIabI[ME'97]
-
-
-